﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

namespace SIIE_ERP.Codigo.Bancos.Catalogos
{
    public class TipoDeCambioCode
    {
        public static string ObtenerTipoCambioDolar(string DocumentoXML)
        {
            var doc = XDocument.Parse(DocumentoXML);
            XNamespace bm = "http://www.banxico.org.mx/structure/key_families/dgie/sie/series/compact";
            var nodes = doc.Root.Elements(bm + "DataSet").Descendants();
            foreach (var node in nodes)
            {
                if (node.Attribute("IDSERIE") != null)
                {
                    if (node.Attribute("IDSERIE").Value.Equals("SF60653"))// USD to MXN
                    {
                        return node.Descendants().First().Attribute("OBS_VALUE").Value;
                    }
                }
            }
            return null;
        }

        public static string ObtenerTipoCambioEuro(string DocumentoXML)
        {
            var doc = XDocument.Parse(DocumentoXML);
            XNamespace bm = "http://www.banxico.org.mx/structure/key_families/dgie/sie/series/compact";
            var nodes = doc.Root.Elements(bm + "DataSet").Descendants();
            foreach (var node in nodes)
            {
                if (node.Attribute("IDSERIE") != null)
                {
                    if (node.Attribute("IDSERIE").Value.Equals("SF46410"))// EURO to MXN
                    {
                        return node.Descendants().First().Attribute("OBS_VALUE").Value;
                    }
                }
            }
            return null;
        }

        public static double FromMonedaToPesos(int IdMoneda, double Cantidad, UsuarioActivo usuario)
        {
            var db = new SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_TipoCambio(usuario.RFC, usuario.UserName);
            var TipoDeCambio = db.Get_TipoCambio_Por_Id_Moneda(IdMoneda).Rows[0]["TipoCambio"].ToString();
            return Double.Parse(TipoDeCambio) * Cantidad;
        }

        public static double FromPesosToMoneda(int IdMoneda, double Cantidad, UsuarioActivo usuario)
        {
            var db = new SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_TipoCambio(usuario.RFC, usuario.UserName);
            var TipoDeCambio = db.Get_TipoCambio_Por_Id_Moneda(IdMoneda).Rows[0]["TipoCambio"].ToString();
            return Cantidad/Double.Parse(TipoDeCambio);
        }

    }
}
